package com.gcxy.service;

import com.gcxy.dto.student.AddStudentInfoDTO;
import com.gcxy.entity.StudentTeacher;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gcxy.entity.User;

import java.util.List;

/**
 * <p>
 * 学生老师关联表:表示从第几周开始某学生的指导教师是谁 服务类
 * </p>
 *
 * @author Huang先森
 * @since 2024-07-22
 */
public interface StudentTeacherService extends IService<StudentTeacher> {

    /**
     * 获取当前教师学生关联关系
     *
     * @param studentId
     * @param semesterId
     * @return
     */
    StudentTeacher getByStudentId(Integer studentId, Integer semesterId);

    /**
     * 获取当前学期教师信息
     *
     * @param semesterId
     * @return
     */
    List<StudentTeacher> getTeacherBySemesterId(Integer semesterId);

    /**
     * 新增学生教师关联关系
     *
     * @return
     */
    boolean insertStudentTeacher(AddStudentInfoDTO addStudentInfoDTO, User user);


    /**
     * 根据学生id获取所有关联老师
     *
     * @param studentId
     * @return
     */
    List<StudentTeacher> getAllByStudentId(Integer studentId);

    /**
     * 更新教师学生关联关系
     *
     * @param StudentTeacher
     */
    boolean updateStudentTeacher(StudentTeacher StudentTeacher);

    /**
     * 删除教师学生关联关系
     *
     * @param id
     * @return
     */
    boolean deleteByStudentId(Integer id, Integer semesterId);

    /**
     * 根据学期id获取组织下当前学期对应的学生信息
     *
     * @param semesterId
     * @return
     */
    List<StudentTeacher> getStudentBySemesterId(Integer semesterId, Integer agencyId);

    /**
     * 获取绑定学生的名誉教师信息
     *
     * @param honoraryTeachers
     * @return
     */
    List<StudentTeacher> getHonoraryTeachers(List<User> honoraryTeachers);
}
